package cn.yh.shop.product.model;

import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Component;
/**
 * @Description:购物车实体类
 * @author:"李战召"
 * @time:2016年12月14日 下午5:57:00
 */
@Component
public class Cart {
	
	/**
	 * 用户的id
	 */
	private Integer userid; 
	/**
	 * 购物车详情的list集合
	 */
	private List<CartItem> items=new ArrayList<CartItem>();
	/**
	 * @Description: isFree : 是否有邮费 0:没有,1有
	 */
	private Integer isFree;
	
	public Integer getUserid() {
		return userid;
	}
	public void setUserid(Integer userid) {
		this.userid = userid;
	}
	public List<CartItem> getItems() {
		return items;
	}
	public void setItems(List<CartItem> items) {
		this.items = items;
	}
	public Integer getIsFree() {
		for (int i=0;i<items.size();i++) {
				if(items.get(i).getIsfree() == 2){  //商品项中存在付费,则该次订单有邮费
					isFree = 1;
					break;
				}
		}
		return isFree;
	}
	public void setIsFree(Integer isFree) {
		this.isFree = isFree;
	}
	/**
	 * 如果购物车加入同样的商品(产品id,口味跟包装一致才算一样商品),就只让的数量加一
	 * @param item
	 */
	public  void addItem(CartItem item){
		for (int i=0;i<items.size();i++) {
			if(items.get(i).getGoodsId()==item.getGoodsId()){
				if(items.get(i).getTasteId() == item.getTasteId()){
					if(items.get(i).getPakageId() == item.getPakageId()){
						items.get(i).setCount(items.get(i).getCount()+1);
						return;
					}
				}
				
			}
		}
		items.add(item);
	}
	
	/**
	 * 计算购物车的总价格
	 * @return
	 */
	public Double getTotalPay() {
		Double totalPay=0.0;
		for (int i = 0; i < items.size(); i++) {
			totalPay+=items.get(i).getTotal();
		}
		return totalPay;
	}
	@Override
	public String toString() {
		return "Cart [userid=" + userid + ", items=" + items + ", isFree=" + isFree + "]";
	}
	
	
}
